A glyph is a simple iconic shape that can be used to depict properties of vector fields. 

\subsection{Appearances}
\label{subsec:glyphappearance}
Our application has three different shapes for glyphs: hedgehogs (lines), triangles, and cones. Each of these appearances is described in this section. Next to that, the \texttt{Glyphs} visualizer class has some properties that can be adjusted regardless of the chosen glyph appearance. These are described in section~\ref{subsec:commonglyph}.

\paragraph{Hedgehogs}
Hedgehogs are lines that are drawn tangent to the vector field. Formally hedgehogs can be defined as a line $l$ with:
\begin{equation}
l = (p,p+k{\bf v}(p))
\label{eq:hegdehog}
\end{equation}
where ${\bf v}$ is a vector field sampled on a domain $\mathcal{D}$ and $p\in \mathcal{D}$ is a sample point~\cite{scivisbookch06}. The scale factor $k$ is a parameter in the visualization, which in our application can be set by means of a spinner, see section~\ref{subsec:commonglyph}.

\paragraph{Triangles}
Triangles are two-dimensional glyphs that have a pointed shape and can therefore not only show the direction of the vector field, but also the orientation~\cite{scivisbookch06}. This is an advantage over hedgehogs. The triangles in our application have a fixed base width while their height is dependent on the vector field magnitude. 

\paragraph{Cones}
Cones are three-dimensional shapes that are very similar to triangles in the sense that they have a pointy head and a broad base. The advantage of cones over triangles is that they look pointy from almost every possible viewpoint. Triangles are two-dimensional and thus look like flat lines when looked at from a point on the 2D plane they are drawn in, or may deform if not viewed along a line that is perpendicular to this plane. 

Cones do not look pointy when they are viewed from the bottom, they then look like circles. Thus, cones very easily identify when the direction of view is tangent to the vector field direction.

An important downside to cones is computational. Rendering 3D shapes takes notably more time than rendering 2D shapes. The using of cones is therefore computationally only preferable when 3D visualization is used. However, from an aesthetic point of view, cones can make a 2D visualization look more appealing.

\subsection{Common features}
\label{subsec:commonglyph}
Regardless of the shape of the actual glyphs, the \texttt{Glyphs} class offers settings that can be used to change the glyphs appearance.

\paragraph{Vector scale}
The scale factor for the vector field can be set using the vector scale spinner in the GUI. This number determines the length of the vector glyph in relation to the magnitude of the vector field at the position of the glyph. Checking the normalize-checkbox makes the vector glyphs uniform length. Normalizing can prevent cluttering when vector field magnitude is very large, and it provides a way to clearly visualize direction, even when the magnitude is very small.

\paragraph{Grid size}
Even though the vector field has a direction and a magnitude at each sample point, it is not practical to draw a glyph at each sample point. Glyphs take up space to depict field direction, therefore it is necessary to subsample the grid when placing glyphs. The grid size spinners allow the user to select the number of glyphs along each axis.

\paragraph{Colormap}
Like every \texttt{Visualizer} in the application, the glyphs can be colored
using any desired scalar dataset and any colormap. It makes sense to use either
the magnitude or the angle of the vector field as coloring dataset, but the
colormap can also be used to depict an other scalar value. For an overview of
available scalar datasets see figure~\ref{fig:datasets}, for more information
on the colormaps, see section~\ref{subsec:colormapping}.

\paragraph{Alpha blending}
A third dataset can be visualized using glyphs when alpha blending is enabled. The alpha value of the glyph's color is then dependent on the value of a scalar dataset. This dataset can, but does not need to, be the same dataset as used for the colormap. Figure~\ref{sub:glyphs_only} shows an example where alpha blending is used to show a third scalar value.
